iT邦幫忙

2021 iThome 鐵人賽

DAY 8
1
Mobile Development

社群聊天 APP 開發經驗分享(入門篇)系列 第 8

Swift 新手-Design pattern 軟體開發設計模式

  • 分享至 

  • xImage
  •  

什麼是設計模式?

在軟體工程中,設計模式(design pattern)是對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。這個術語是由埃里希·伽瑪(Erich Gamma)等人在1990年代從建築設計領域引入到電腦科學的。

設計模式並不直接用來完成程式碼的編寫,而是描述在各種不同情況下,要怎麼解決問題的一種方案。物件導向設計模式通常以類別或物件來描述其中的關係和相互作用,但不涉及用來完成應用程式的特定類別或物件。設計模式能使不穩定依賴於相對穩定、具體依賴於相對抽象,避免會引起麻煩的緊耦合,以增強軟體設計面對並適應變化的能力。

並非所有的軟體模式都是設計模式,設計模式特指軟體「設計」層次上的問題。還有其他非設計模式的模式,如架構模式。同時,演算法不能算是一種設計模式,因為演算法主要是用來解決計算上的問題,而非設計上的問題。

-- by wikipedia 設計模式 (電腦)

為什麼需要設計模式?
當產品需求有變動時,代表程式碼也需要作出相對應的更動,讓功能能順利上線驗收;而程式碼變更的潛在風險就是不知道何時會引發陳年技術債(omg),需要想辦法降低修改程式碼而導致 bug 產生的可能性,這時候可以參考設計模式尋找解法!

使用設計模式前,先了解物件導向設計的 5 大基本原則
wikipedia 物件導向設計
SOLID 設計原則-SRP、OCP、LSP、ISP、DIP

設計模式三類別
Swift 常見的設計模式

  • 建立型模式(5種)
  1. 單例模式
  2. 原型模式
  3. 建造者模式
  4. 工廠方法模式
  5. 抽象工廠模式
  • 結構型模式(7種)
  1. 代理模式
  2. 外觀模式
  3. 橋接模式
  4. 組合模式
  5. 享元模式
  6. 介面卡模式
  7. 裝飾器模式
  • 行為型模式(11種)
  1. 策略模式
  2. 命令模式
  3. 狀態模式
  4. 備忘錄模式
  5. 訪問者模式
  6. 中介者模式
  7. 直譯器模式
  8. 觀察者模式
  9. 迭代器模式
  10. 責任鏈模式
  11. 模板方法模式

結語
希望能在新手時期打底觀念,在未來寫出一個乾淨、有彈性且好測試的程式!


上一篇
Swift 新手-語法基礎
下一篇
Swift 新手-後端基礎 PHP + MySQL & Laravel
系列文
社群聊天 APP 開發經驗分享(入門篇)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言